home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 49 / Amiga Format CD49 (2000-01-17)(Future Publishing)(GB)(Track 1 of 3)[!][issue 2000-02].iso / -serious- / comms / other / novia / src / include / novia_portdata.h < prev    next >
C/C++ Source or Header  |  1999-12-06  |  10KB  |  330 lines

  1. #ifndef NOVIA_PORTDATA_H
  2. #define NOVIA_PORTDATA_H
  3. #define NOVIA_PORTDATA_H_VERSION $VER: 0.18 (21.02.1999)
  4. // V0.10 06.08.1998 (c) Copyright 1996-1998 by Thorsten Gehler
  5. // V0.11 06.08.1998 (c) Copyright 1996-1998 by Thorsten Gehler
  6. // V0.12 06.08.1998 (c) Copyright 1996-1998 by Thorsten Gehler
  7. // V0.15 20.08.1998 (c) Copyright 1996-1998 by Thorsten Gehler        !!! new PortData Structure  !!!
  8. // V0.16 22.08.1998 (c) Copyright 1996-1998 by Thorsten Gehler
  9. // V0.17 17.10.1998 (c) Copyright 1996-1998 by Thorsten Gehler
  10. // V0.18 21.02.1999 (c) Copyright 1996-1999 by Thorsten Gehler
  11. // All rights reserved. Read license.readme for copyright informations.
  12.  
  13.  
  14. #include <novia/novia_global.h>
  15.  
  16. #ifndef NOVIA_USERDATA_H
  17. #include <novia/novia_userdata.h>
  18. #endif
  19.  
  20. #ifndef EXEC_TYPES_H
  21. #include <exec/types.h>
  22. #endif
  23.  
  24. #ifndef EXEC_NODES_H
  25. #include <exec/nodes.h>
  26. #endif
  27.  
  28. #ifndef EXEC_IO_H
  29. #include <exec/io.h>
  30. #endif
  31.  
  32. #ifndef DEVICES_SERIAL_H
  33. #include <devices/serial.h>
  34. #endif
  35.  
  36. #ifndef LIBRARIES_GADTOOLS_H
  37. #include <libraries/gadtools.h>
  38. #endif 
  39.  
  40. #define PORT_VALIDATED_TRUE 0xFD08C792
  41.  
  42. #ifndef DEVICES_TIMER_H
  43. #include <devices/timer.h>
  44. #endif
  45.  
  46. #ifndef NOVIA_DOS_H
  47. #include <novia/novia_dos.h>
  48. #endif
  49.  
  50. struct InitPortStructure
  51. {
  52.     void *exit_func;
  53. };
  54.  
  55.  
  56. struct NetworkLayer
  57. {
  58.     /* Low Level Functions */
  59.  
  60.     Hook    OpenNetworkSocket;            // 20  function to open serial.device or init socket() etc.
  61.     Hook    CloseNetworkSocket;            // 40  close serial.device, Flush resources etc....
  62.     Hook    WaitConnect;                // 60  Wait for next call
  63.     Hook    ResetNetworkSocket;            // 80  Hang up after, clear buffer after LOSTCARRIER.
  64.     Hook    CheckNetworkStatus;            // 100 Check Carrier.
  65.  
  66.     /* Communication Functions */
  67.  
  68.     Hook    Send;                        // 120 function to send data to network layer
  69.     Hook    Recv;                        // 140 function to recieve data from network layer
  70.  
  71.     UBYTE    isopen;                        // 141
  72.     UBYTE    networktype;                // 142 type of network. Normaly is the same as ClientConig->Networktype. 
  73.     UBYTE    online;                        // 143 Network Transmission is running. FALSE == NOCARRIER
  74.     UBYTE    can_read;                    // 144 System can send data to NetworkLayer
  75.     UBYTE    can_write;                    // 145 System ingnore incommingdate... for User-Monitor etc...
  76.  
  77.     UBYTE    res[15];                    // 160
  78.     char    ReadBuf[32];                // 192 serial.device  readbuffer;
  79.     ULONG    length;                        // 196 actual length of data in buffer.
  80.     APTR    networkdata;                // 200 pointer to private network data-structur..
  81. };
  82.  
  83.  
  84. struct SerialNetwork
  85. {
  86.     struct    MsgPort        *SerWritePort,            // 4 WriteioPort
  87.                         *SerReadPort,            // 8 
  88.                         *SerQueryPort;            // 12
  89.     struct  IOExtSer    *SerRead,                // 16 SerRead-IORequest
  90.                         *SerWrite,                // 20 SerWrite-IORequest
  91.                         *SerQuery;                // 24 IOExtSer for check carrier, serialbuffer... etc.
  92.     char                SerReadSend;            // 25
  93.     char                res[3];
  94. };
  95.  
  96.  
  97. struct TCPPort {                                // new V0.16
  98.     ULONG    Netmask;                // 4
  99.     ULONG    NetIP;                    // 8
  100.     ULONG    PortIP;                    // 12
  101.     UWORD    Port;                    // 14
  102.     char    flag_dynamic;            // 15
  103.     char    flag_fromdb;            // 16
  104.     char    flag_OSI4_Protocol;        // 17            0 = TCP, 1 = UDP
  105.     char    flag_charset;            // 18            0 = linemode, 1 = charmode. (RFC 2066)
  106.     char    flag_extascii;            // 19                                         (RFC 698)
  107.     char     reserved[493];            // 512
  108. };
  109.  
  110. struct ParPort {
  111.     char    Device_Name[30];        // 30
  112.     UWORD    Unit;                    // 32
  113.     BYTE    CableType;                // 33
  114.     char    reserved[479];            // 512
  115. };
  116.  
  117. struct SerPort {                    //      |CC-Offset|
  118.     char    Device_Name[30];        // 30        92
  119.     UWORD    Unit;                    // 32        122
  120.     ULONG    IdleRate;                // 36        124            // not implanted yet !!!
  121.     ULONG    OnlineBaud;                // 40        128            // used baudrate.
  122.     ULONG    OfflineBaud;            // 44        132            // not implanted yet !!!
  123.  
  124.     ULONG    IOBuffersize;            // 48        136
  125.     UWORD    AnswerPause;            // 50        140
  126.     UWORD    CarrierWait;            // 52        142
  127.     BYTE    Parity;                    // 53        144
  128.     BYTE    Duplex;                    // 54        145            // 0=RTS/CTS or 1=XON/XOFF
  129.     BYTE    DataBits;                // 55        146
  130.     BYTE    StopBits;                // 56        147
  131.  
  132.     BYTE    Handshake;                // 57        148
  133.     BYTE    DTR_Hangup;                // 58        149
  134.     BYTE    WaitDSR;                // 59        150
  135.     BYTE    chrescape;                // 60        151
  136.     BYTE    chrbreak;                // 61        152
  137.     char    TermLinkPW[21];            // 82        153
  138.     char    TermLinkECyrpt[21];        // 103        174
  139.     char    ServerLinkPW[21];        // 124        195
  140.     char    ServerLinkECyrpt[21];    // 145        216
  141.  
  142.     char    str_CONNECT[41];        // 186        237
  143.     char    str_NOCARRIER[41];        // 227        278
  144.     char    str_NODIALTONE[41];        // 268        319
  145.     char    str_RING[41];            // 309        360
  146.     char    str_BUSY[41];            // 350        401
  147.     char    str_OK[41];                // 391        442
  148.     char    str_TIMEOUT[41];        // 432        483
  149.     char    str_ERROR[41];            // 473        524
  150.     char    cmd_ANSWER[41];            // 514        565
  151.     char    cmd_init[41];            // 555        606
  152.     char    cmd_exit[41];            // 596        647
  153.     char    cmd_hangup[41];            // 637        688
  154.     char    dial_dialprefix[41];    // 678        739
  155.     char    dial_dialsuffix[41];    // 719        770
  156.     BYTE    dial_dialmode;            // 720        811
  157.     char    reserved[100];            // 820        812
  158. };
  159.  
  160. struct    ClientConfig
  161. {
  162.     ULONG                        IDNumber;        // 4 Real PortID 
  163.     ULONG                        IPNumber;        // 8 Serial PortID
  164.     ULONG                        seek;            // 12 pos in sys.clientconfig
  165.     char                        datadir[80];    // 92 optional datadir
  166.  
  167.     struct    SerPort SerialData;                    // 912
  168.     struct    ParPort ParData;                    // 1424
  169.     struct    TCPPort TCPData;                    // 1936
  170.     ULONG    ScreenModeID;                        // 1940
  171.     ULONG    Colors;                                // 1944
  172.  
  173.     BYTE    UseWorkbench;                        // 1945 open the monitor-window on workbench
  174.     BYTE    LoadPortatstart;                    // 1946 Loading Client at booting
  175.     
  176.     BYTE    OpenScreenatstart;                    // 1947
  177.     BYTE    resbool;                            // 1948
  178.  
  179.     char    ScreenFont[32];                        // 1980
  180.     UWORD    ScreenFontsize;                        // 1982
  181.     char    TermFont[32];                        // 2014
  182.     UWORD    TermFontsize;                        // 2016
  183.     BYTE    Networktype;                        // 2017
  184.     char    reserved[103];                        // 2120
  185. };
  186.  
  187. struct RexxProg
  188. {
  189.     struct RexxProg *ln_Succ;
  190.     struct RexxPorg *ln_Pred;
  191.     struct PortData *cport;
  192.     struct MsgPort    *replyport;
  193.     char ProgramName[256];    
  194.     char tempfile[40];    
  195.     char TaskName[32];
  196. };
  197.  
  198. struct PortData
  199. {
  200.     struct     ClientConfig    clientconfig;        // 2120
  201.     struct    SystemDirs        *sysdirs;            // 2124        Only for Port-Init.
  202.  
  203.     struct    IOStdReq     *ConRead;                // 2128        ConRead io-request
  204.     struct    IOStdReq     *ConWrite;                // 2132        ConWrite
  205.     struct    timerequest *TimerReq;                // 2136
  206.     struct    NetworkLayer network;                // 2336
  207.  
  208.     UBYTE        ConReadSend;                        // 2337            console.device - CMD_READ send, waiting for data
  209.     UBYTE        ChatBreak;                            // 2338
  210.     UBYTE        ich_glaube_komma_das_byte_benutz_isch_spaeter_einmal_komma_wenn_ich_lust_dazu_habe_punkt;
  211.     UBYTE        SysopChat;                // 2340
  212.     
  213.     char     argstring[10][80];                    // 3140
  214.     ULONG    argcounter;                            // 3144
  215.  
  216.     struct    MsgPort        *ConPort,                // 3148
  217.                                 *MainPort,                // 3152
  218.                                 *LocalPort,                // 3156
  219.                                 *rexxport,                // 3160        REXX-Command Port
  220.                                 *TimePort,                // 3164        Msgport for timer.device
  221.                                 *rtport,                // 3168        runtime port for rexx, dos programs.
  222.                                 *nfs_port;
  223.  
  224.     struct    Screen        *scr;                    // 3172
  225.     struct    Window        *win;                    // 3176
  226.  
  227.     struct    UserList    UL;                        // 3192
  228.     struct    UserData    LocalUser,                // 4344
  229.                         EditUser;                // 5496
  230.  
  231.     struct    Date        PortLoad;                // 5508 Port was loaded on... 
  232.     struct    Date        PortInstalled;            // 5520 Port was installed on... 
  233.     struct    Date        LastLogin;                // 5532 Last User has login on... 
  234.  
  235.     ULONG        RealID;                            // 5536 Number of entry in sorted list
  236.     BYTE        PortType;                        // 5537 Port is local or externial 
  237.     BYTE        PortStatus;                        // 5538 0 - Port is closed
  238.                                                 /*        1 - Port is offline
  239.                                                         2 - online, waiting for call
  240.                                                         3 - online, carrier detected
  241.                                                         4 - online, user has login */
  242.  
  243.     BYTE    Supervisor,                            // 5539 SV-Flag
  244.             NewUser,                            // 5540 NewUser Process 
  245.             Dumped,                                // 5541 auto-kickoff flag    
  246.             HideAll,                            // 5542 Hidden from ALL?    
  247.             MuffAll,                            // 5543  Muffling ALL?    
  248.             MonitorAll;                            // 5544 Monitoring ALL?
  249.     ULONG    CurrentCPS;                            // 5548 Current CPS Rate 
  250.     Directory *cmddir;                    // 5552 command directory
  251.     ULONG    *numberofmci;                        // 5556 Number of mci's
  252.     struct    mcicode *mcicmd;                    // 5560 MCI Table
  253.     ULONG    PortValidated;                        // 5564
  254.     char    Where[40];                            // 5604 WHo is't                     //new in V0.09
  255.  
  256.     struct    STR_Group *strgroup;                // 5608                             //new in V0.10
  257.     UWORD     strgroups;                            // 5610
  258.     UWORD    ressfsfdsfds;                        // 5612
  259.     char    *iobuffer;                            // 5616 pointer to iobuffer;
  260.     MinList    iobuffer_list;                        // 5628                                    //new in V0.15
  261.     MinList his_list;                            // 5640 Input History List for Curser Up/Down
  262.     MinList    select_list;                        // 5652 Selected File/Item List
  263.     ULONG    hiscounter;                            // 5656 hisentrys;
  264.  
  265.     ULONG    RexxOpenCounter;                    // 5660
  266.  
  267.     UBYTE    color;                                // 5661 current Pen
  268.     UBYTE    bcolor;                                // 5662 current background color
  269.     UBYTE    CurserX;                            // 5663 curser column position
  270.     UBYTE    CurserY;                            // 5664 curser line position
  271.  
  272.     UBYTE    sssfsfsfssffre;                        // 5665
  273.     UBYTE    ProgramClose;                        // 5666 Port Shut Down
  274.     UBYTE    gfdgfdgfdhbhk;                        // 5667
  275.     UBYTE    connect_seq;                        // 5668 connect sequence, waiting for next call.
  276.  
  277.     char     ConBuf[32];                            // 5700 console.device readbuffer;
  278.     struct    Menu *winmenu;                        // 5704
  279.     APTR    vinfo;                                // 5708
  280.     struct     NewMenu *mymenu;                    // 5712
  281.     char    *Titel;                                // 5716 ScreenTitel
  282.     char    actitel[80];                        // 5796
  283.     UBYTE    MonitorOpen;                        // 5797 Monitor is open
  284.     UBYTE    readnew;                            // 5798 UDBase
  285.     UBYTE    systemservice;                        // 5799 User is a system administrator
  286.     UBYTE    reserved;                            // 5800
  287.     char    whostring[32];                        // 5832
  288.     char    RexxPortName[32];                    // 5864
  289.     char    TaskName[32];                        // 5896
  290.     struct    Window *xprwin;                        // 5900
  291.     UBYTE    netecho;                            // 5901 echo to network-device
  292.     UBYTE    conecho;                            // 5902
  293.     UBYTE    res45604;                            // 5903
  294.     UBYTE    res45610;                            // 5904
  295.     struct     Task *task;                            // 5908
  296.     MinList downloadlist;                        // 5920 files to download
  297.     MinList rexxlist;                            // 5932
  298.     struct  SelectItem *actual;                    // 5936 actual file
  299.     char     *currentdirname;                    // 5940 pointer of currentdir
  300.     Directory *currentdir;                        // 5944
  301.     char    *homedir;                            // 5948 pointer to users homedir
  302.     char    *rootdir;                            // 5952
  303.     char    *inputbuffer;                        // 5956 input buffer
  304.     char    *argptr;                            // 5960 pointer of first arg
  305.     ItemEntryList itementrylist;                // 6000 list of ListEntryBlock's in currentdir
  306. //    char    reservedBytes[20];                    // 6000
  307. };
  308.  
  309. struct PortData2 {                    // This structure is only for ClientDatabase in Mainport
  310.     Node        port_node;            // 14
  311.     UWORD        fuck_commodore;        // 16
  312.     PortData    *port_address;        // 20
  313. };
  314.  
  315.  
  316. struct XPRProtocol
  317. {
  318.     struct Node node;
  319.  
  320.     char name[41];
  321.     char library[41];
  322.     char options[41];
  323.     LONG batch;
  324. };
  325.  
  326.  
  327. #define SIZEOF_CLIENTNAME 20
  328.  
  329. #endif    // NOVIA_PORTDATA_H
  330.